package com.wicket.okrbff.biz.service.dto.res;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc BffQueryProjectDetailRespDto
 * @使用场景
 */
@Data
public class BffQueryProjectDetailRespDto implements Serializable {

  /**
   * 项目ID
   */
  @ApiModelProperty("项目ID")
  private String projectId;

  /**
   * 项目编号
   */
  @ApiModelProperty("项目编号")
  private String projectNumber;

  /**
   * 项目标识
   */
  @ApiModelProperty("项目标识")
  private String projectCode;

  /**
   * 项目名称
   */
  @ApiModelProperty("项目名称")
  private String projectName;

  /**
   * 项目logo
   */
  @ApiModelProperty("项目logo")
  private String projectLogo;

  /**
   * 项目文字描述
   */
  @ApiModelProperty("项目文字描述")
  private String projectDesc;

  /**
   * 项目图片描述
   */
  @ApiModelProperty("项目图片描述")
  private String projectImg;

  /**
   * 安排主体ID
   */
  @ApiModelProperty("安排主体ID")
  private String arrangeSubjectId;

  /**
   * 安排主体名称
   */
  @ApiModelProperty("安排主体名称")
  private String arrangeSubjectName;

  /**
   * 接收部门ID
   */
  @ApiModelProperty("接收部门ID")
  private String receiveSubjectId;

  /**
   * 接收部门名称
   */
  @ApiModelProperty("接收部门名称")
  private String receiveSubjectName;

  /**
   * 归属对象ID
   */
  @ApiModelProperty("归属对象ID")
  private String coordObjectId;

  /**
   * 归属对象名称
   */
  @ApiModelProperty("归属对象名称")
  private String coordObjectName;

  /**
   * 公文ID
   */
  @ApiModelProperty("公文ID")
  private String officialDocumentId;

  /**
   * 公文名称
   */
  @ApiModelProperty("公文名称")
  private String officialDocumentName;

  /**
   * 计划开始时间
   */
  @ApiModelProperty("计划开始时间")
  private Date planStartTime;

  /**
   * 计划结束时间
   */
  @ApiModelProperty("计划结束时间")
  private Date planEndTime;

  /**
   * 实际开始时间
   */
  @ApiModelProperty("实际开始时间")
  private Date actualStartTime;

  /**
   * 实际结束时间
   */
  @ApiModelProperty("实际结束时间")
  private Date actualEndTime;

  /**
   * 总时长
   */
  @ApiModelProperty("总时长")
  private Long totalLength;

  /**
   * 开始时间偏差天数
   */
  @ApiModelProperty("开始时间偏差天数")
  private Long deflectionStartDays;

  /**
   * 结束时间偏差天数
   */
  @ApiModelProperty("结束时间偏差天数")
  private Long deflectionEndDays;

  /**
   * 前端偏差时间
   */
  @ApiModelProperty("前端偏差时间")
  private Long deflectionTime;

  /**
   * 前端偏差语义提示
   */
  @ApiModelProperty("前端偏差语义提示")
  private String deflectionInfo;

  /**
   * 冗余最新进度
   */
  @ApiModelProperty("冗余最新进度")
  private Double percentageProgress;

  /**
   * 项目规模 LARGE:大型项目 MEDIUM:中型项目 SMALL:小型项目
   */
  @ApiModelProperty("项目规模")
  private String projectScale;

  /**
   * 项目优先级 P0:P0 P1:P1 P2:P2 P3:P3 P4:P4
   */
  @ApiModelProperty("项目优先级")
  private String projectPriority;

  /**
   * 项目类型 PRE_SALES_PROJECT:售前项目 PRODUCE_PROJECT:生产项目 AFTER_SALES_PROJECT:售后项目
   */
  @ApiModelProperty("项目类型")
  private String projectTypeCode;

  /**
   * 来源类型编码
   */
  @ApiModelProperty("来源类型编码")
  private String sourceTypeCode;

  /**
   * 来源名称
   */
  @ApiModelProperty("来源名称")
  private String sourceName;

  /**
   * 成员身份是否锁定修改 TRUE:是 FALSE:否
   */
  @ApiModelProperty("成员身份是否锁定修改")
  private String membershipIsLockedRevise;

  /**
   * 相关人数量
   */
  @ApiModelProperty("相关人数量")
  private Long relevantPeopleNum;

  /**
   * 项目进展状态 NOT_AT_THE:未开始 ONGOING:进行中 HAS_ENDED:已结束
   */
  @ApiModelProperty("项目进展状态")
  private String taskStatus;

  /**
   * 内容状态
   */
  @ApiModelProperty("内容状态")
  private String stateCode;

  /**
   * 是否已处理 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否已处理")
  private String isHandle;

  /**
   * 是否系统项目 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否系统项目")
  private String isSystemTask;

  /**
   * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
   */
  @ApiModelProperty("主体生命周期")
  private String subjectLifeCycle;

  /**
   * 操作人就职记录ID
   */
  @ApiModelProperty("操作人就职记录ID")
  private String operationInductionId;

  /**
   * 账号
   */
  @ApiModelProperty("账号")
  private String userId;

  /**
   * 真实头像
   */
  @ApiModelProperty("真实头像")
  private String userFace;

  /**
   * 真实姓名
   */
  @ApiModelProperty("真实姓名")
  private String idCardName;

  /**
   * 用户昵称
   */
  @ApiModelProperty("用户昵称")
  private String nickName;

  /**
   * 操作时间
   */
  @ApiModelProperty("操作时间")
  private Date operateTime;

}
